// automatically generated by the FlatBuffers compiler, do not modify

/**
 * @const
 * @namespace
 */
var NamespaceA = NamespaceA || {};

/**
 * @const
 * @namespace
 */
NamespaceA.NamespaceB = NamespaceA.NamespaceB || {};

/**
 * @enum {number}
 */
NamespaceA.NamespaceB.EnumInNestedNS = {
  A: 0,
  B: 1,
  C: 2
};

/**
 * @enum {string}
 */
NamespaceA.NamespaceB.EnumInNestedNSName = {
  '0': 'A',
  '1': 'B',
  '2': 'C'
};

/**
 * @constructor
 */
NamespaceA.NamespaceB.TableInNestedNS = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {NamespaceA.NamespaceB.TableInNestedNS}
 */
NamespaceA.NamespaceB.TableInNestedNS.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {NamespaceA.NamespaceB.TableInNestedNS=} obj
 * @returns {NamespaceA.NamespaceB.TableInNestedNS}
 */
NamespaceA.NamespaceB.TableInNestedNS.getRootAsTableInNestedNS = function(bb, obj) {
  return (obj || new NamespaceA.NamespaceB.TableInNestedNS).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @param {flatbuffers.ByteBuffer} bb
 * @param {NamespaceA.NamespaceB.TableInNestedNS=} obj
 * @returns {NamespaceA.NamespaceB.TableInNestedNS}
 */
NamespaceA.NamespaceB.TableInNestedNS.getSizePrefixedRootAsTableInNestedNS = function(bb, obj) {
  return (obj || new NamespaceA.NamespaceB.TableInNestedNS).__init(bb.readInt32(bb.position()) + bb.position(), bb);
};

/**
 * @returns {number}
 */
NamespaceA.NamespaceB.TableInNestedNS.prototype.foo = function() {
  var offset = this.bb.__offset(this.bb_pos, 4);
  return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
};

/**
 * @param {number} value
 * @returns {boolean}
 */
NamespaceA.NamespaceB.TableInNestedNS.prototype.mutate_foo = function(value) {
  var offset = this.bb.__offset(this.bb_pos, 4);

  if (offset === 0) {
    return false;
  }

  this.bb.writeInt32(this.bb_pos + offset, value);
  return true;
};

/**
 * @param {flatbuffers.Builder} builder
 */
NamespaceA.NamespaceB.TableInNestedNS.startTableInNestedNS = function(builder) {
  builder.startObject(1);
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} foo
 */
NamespaceA.NamespaceB.TableInNestedNS.addFoo = function(builder, foo) {
  builder.addFieldInt32(0, foo, 0);
};

/**
 * @param {flatbuffers.Builder} builder
 * @returns {flatbuffers.Offset}
 */
NamespaceA.NamespaceB.TableInNestedNS.endTableInNestedNS = function(builder) {
  var offset = builder.endObject();
  return offset;
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} foo
 * @returns {flatbuffers.Offset}
 */
NamespaceA.NamespaceB.TableInNestedNS.createTableInNestedNS = function(builder, foo) {
  NamespaceA.NamespaceB.TableInNestedNS.startTableInNestedNS(builder);
  NamespaceA.NamespaceB.TableInNestedNS.addFoo(builder, foo);
  return NamespaceA.NamespaceB.TableInNestedNS.endTableInNestedNS(builder);
}

/**
 * @constructor
 */
NamespaceA.NamespaceB.StructInNestedNS = function() {
  /**
   * @type {flatbuffers.ByteBuffer}
   */
  this.bb = null;

  /**
   * @type {number}
   */
  this.bb_pos = 0;
};

/**
 * @param {number} i
 * @param {flatbuffers.ByteBuffer} bb
 * @returns {NamespaceA.NamespaceB.StructInNestedNS}
 */
NamespaceA.NamespaceB.StructInNestedNS.prototype.__init = function(i, bb) {
  this.bb_pos = i;
  this.bb = bb;
  return this;
};

/**
 * @returns {number}
 */
NamespaceA.NamespaceB.StructInNestedNS.prototype.a = function() {
  return this.bb.readInt32(this.bb_pos);
};

/**
 * @param {number} value
 * @returns {boolean}
 */
NamespaceA.NamespaceB.StructInNestedNS.prototype.mutate_a = function(value) {
  var offset = this.bb.__offset(this.bb_pos, 0);

  if (offset === 0) {
    return false;
  }

  this.bb.writeInt32(this.bb_pos + offset, value);
  return true;
};

/**
 * @returns {number}
 */
NamespaceA.NamespaceB.StructInNestedNS.prototype.b = function() {
  return this.bb.readInt32(this.bb_pos + 4);
};

/**
 * @param {number} value
 * @returns {boolean}
 */
NamespaceA.NamespaceB.StructInNestedNS.prototype.mutate_b = function(value) {
  var offset = this.bb.__offset(this.bb_pos, 4);

  if (offset === 0) {
    return false;
  }

  this.bb.writeInt32(this.bb_pos + offset, value);
  return true;
};

/**
 * @param {flatbuffers.Builder} builder
 * @param {number} a
 * @param {number} b
 * @returns {flatbuffers.Offset}
 */
NamespaceA.NamespaceB.StructInNestedNS.createStructInNestedNS = function(builder, a, b) {
  builder.prep(4, 8);
  builder.writeInt32(b);
  builder.writeInt32(a);
  return builder.offset();
};

// Exports for Node.js and RequireJS
this.NamespaceA = NamespaceA;
